Skip to content

Fix card-selection border weight, transition sync, and Adorn tag grey peek#5111

Closed
lukemelia wants to merge 4 commits into
mainfrom
cs-11329-card-selection-border-and-adorn-tag-polish
Closed

Fix card-selection border weight, transition sync, and Adorn tag grey peek#5111
lukemelia wants to merge 4 commits into
mainfrom
cs-11329-card-selection-border-and-adorn-tag-polish

Conversation

@lukemelia

@lukemelia lukemelia commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

Adorn selection-overlay polish from Burcu's review of #5083. Diagnosed and verified live in the running app via DevTools computed styles + geometry.

CS-11329 — selection border too thin (fully addressed)

In the card chooser, a selected item showed only the thin 1px button border. The intended teal ring was supposed to come from AdornContext's :deep(.adorn-stroke.selected) rule, but the catalog item didn't pick it up (computed box-shadow on a selected item was rgba(0,0,0,0) 0 0 0 0). Fix: define the ring directly on .catalog-item.adorn.selected — a 4px --boxel-highlight ring, darkening to --boxel-highlight-hover on hover — so it stays full-weight whether or not the item is hovered. Verified: now rgb(0,255,186) 0 0 0 4px. (Operator-mode overlays already rendered a correct 4px ring, so this is scoped to the chooser/search item-button.)

CS-11330 — border lags the tag (fully addressed)

The ring faded in over box-shadow 0.2s while the selection tag/chip render instantly, so the border appeared ~0.2s after the tag. Fix: transition: none on the selected ring so the two appear together. (In operator mode both were already instant — no desync there.)

CS-11331 — Adorn tag polish (2 of 3 points; issue stays open)

  • Grey peek (fixed): the label tab cast a grey drop-shadow filter that bled past its clipped/rounded corners; removed it (verified filter: none).
  • Vertical alignment when below the card (fixed): the tab overlapped the card bottom by 2px, riding 1px too high; reduced to a 1px tuck under the bottom outline stroke (verified live, overlap 2px → 1px).
  • Border-radius (not changed, deliberately): the tab is a separate 24px-tall flag; the card is 10px. Force-matching the radii would make the small tab look disproportionate, so the right treatment is a design call left for Burcu. CS-11331 stays open for it.

Base branch

Targets cs-11325-… (PR #5100) because the Adorn overlay/tag code these touch was reworked on that stack and isn't on main yet — branching off main would patch stale code. Will rebase onto main once the stack lands.

Testing

  • eslint clean.
  • Verified live in the running host app via DevTools computed styles + geometry (before/after values above); the dev server picked up each edit on reload.

🤖 Generated with Claude Code

… peek

Three Adorn selection-overlay polish items from design review:

CS-11329: in the card chooser, a selected item showed only the thin 1px
button border — the intended teal ring never applied because it relied on
AdornContext's :deep stroke rule, which the catalog item didn't pick up.
Define the ring directly on `.catalog-item.adorn.selected` (4px highlight,
darker on hover) so it stays full-weight whether or not the item is hovered.

CS-11330: that ring faded in ~0.2s after the selection tag/chip (which
render instantly), so the border lagged the tag. Set `transition: none` on
the selected ring so the two appear together.

CS-11331: the Adorn label tab cast a grey `drop-shadow` filter that peeked
out past its clipped/rounded corners. Remove it.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@github-actions

github-actions Bot commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

Preview deployments

Host Test Results

    1 files      1 suites   1h 38m 31s ⏱️
2 931 tests 2 916 ✅ 15 💤 0 ❌
2 950 runs  2 935 ✅ 15 💤 0 ❌

Results for commit 4e28786.

Realm Server Test Results

    1 files      1 suites   9m 48s ⏱️
1 549 tests 1 548 ✅ 1 💤 0 ❌
1 640 runs  1 639 ✅ 1 💤 0 ❌

Results for commit 4e28786.

lukemelia and others added 3 commits June 4, 2026 17:41
When the type-label tab flips below a card (no room above), it overlapped
the card's bottom edge by 2px, leaving it sitting one pixel too high over
the edge. Reduce the overlap to 1px so the flag's top edge still tucks under
the bottom outline stroke and reads as attached. Addresses the
vertical-alignment point of CS-11331; verified live (overlap 2px → 1px).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The previous fix put `transition: none` only on `.catalog-item.adorn.selected`,
not on its `:hover` variant. But a card is normally hovered at the moment it's
clicked to select, so the `:hover` rule governs the ring's first paint — and it
fell back to the base `box-shadow 0.2s`, so the ring animated in ~0.2s after the
(instant) selection chip. Apply `transition: none` to the hover variant as well.
Verified live with a real pointer: select-while-hovered now paints the ring in
one frame.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The styling class on this component predated its rename to `ItemButton`;
`catalog-item` also mis-implied it's catalog-only when it also renders search
results. Rename the scoped class (and the `.catalog-item` test assertions) to
match the component. The separate `data-test-card-catalog-item` attributes are
left as-is.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@lukemelia

Copy link
Copy Markdown
Contributor Author

[Claude Code 🤖] Superseded — split into 4 focused PRs (each rebased onto current main):

Closing this bundled draft; reopen if needed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant